Skip to content

[WEEK07-2] 이지현#31

Merged
sik9252 merged 2 commits into
mainfrom
sik9252
Mar 30, 2026
Merged

[WEEK07-2] 이지현#31
sik9252 merged 2 commits into
mainfrom
sik9252

Conversation

@sik9252
Copy link
Copy Markdown
Collaborator

@sik9252 sik9252 commented Mar 26, 2026

이렇게 풀었어요

1. Same Tree

  • 문제를 풀었어요.
  • 풀이 시간 : 30분

1) 복잡도 계산

시간 복잡도: O(n)

공간 복잡도: O(n)


2) 접근 아이디어

단순히 그냥 배열 2개 같은지 비교하면 되는거 아니냐 생각했다. 하지만, 트리는 선형 자료구조가 아니고, "구조 자체가 정보"이다. 문제 예시로 있던 아래 트리만 봐도

p:       1         q:       1
        /                   \
       2                     2

그냥 값만 보면 같아보이지만 왼쪽에 있는지 오른쪽에 있는지 구조가 다르므로 false다.

크게 3가지 부분을 비교해야한다.

  1. 둘 다 null이면 같음
  2. 하나만 null이면 다름
  3. 둘 다 값이 있으면
  • 현재 값이 같아야 함
  • 왼쪽 서브트리도 같아야 함
  • 오른쪽 서브트리도 같아야 함

재귀로 풀어야 할 것 같다.


2. Number of 1 Bits

  • 문제를 풀었어요.
  • 풀이 시간 : 5분

1) 복잡도 계산

시간 복잡도: O(n)

공간 복잡도: O(1)


2) 접근 아이디어

주어진 정수의 이진수 표현에서 1이 몇 개 있는지 구하자.

저번 시간에 푼 문제에 적용했던 연산 n = n & (n-1)을 쓰면 될 것 같다. 이 연산은 가장 오른쪽에 있는 1비트 하나가 제거되는 방식이다. 했던대로 제거하면서 count++로 증가시키면 그게 결국 1비트의 개수가 된다.

Comment thread sik9252/NumberOf1Bits.js
}

return count;
};
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

크 ... 풀이 간단해서 좋네요 👍

Comment thread sik9252/SameTree.js
var isSameTree = function (p, q) {
if (!p && !q) return true; // 둘 다 없으면(null)
if (!p || !q) return false; // 둘 중 하나만 없으면(null)
if (p.val !== q.val) return false; // 값이 다르면
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

early return 좋네요!!!

@typenoob
Copy link
Copy Markdown

시간 복잡도: O(n)

O(n)이 아니라, 이거보다 훨씬 빠릅니다

@sik9252 sik9252 merged commit d44d727 into main Mar 30, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants